package drp.snowbell.io;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;

/**
 * 资源接口
 * 
 * @author jimmy
 * 
 */
public interface IResource {

	/**
	 * 获取URI
	 * 
	 * @return
	 */
	URI getURI();

	/**
	 * 是否是目录
	 * 
	 * @return
	 */
	// boolean isDirectory();

	/**
	 * 如果是目录的话返回该目录下的所有资源
	 * 
	 * @return
	 */
	// IResource[] listResource();

	/**
	 * 获取资源名称.
	 * 
	 * @return
	 */
	String getName();

	/**
	 * 获取路径
	 * 
	 * @return
	 */
	String getPath();

	/**
	 * 打开输入流
	 * 
	 * @return
	 */
	InputStream openInputStream();

	/**
	 * 打开输出流
	 * 
	 * @return
	 */
	OutputStream openOutStream();

	/**
	 * 重命名资源
	 * 
	 * @param newName
	 * @return 成功返回true.
	 */
	boolean rename(String newName);

	/**
	 * 删除
	 * 
	 * @return 成功返回true.
	 */
	boolean delete();
	/**
	 * 读取数据
	 * 
	 * @return
	 */
	// byte[] read();

	/**
	 * 写入数据
	 * 
	 * @param data
	 */
	// void write(byte[] data);

}
